package com.meg7.soas.espresso;
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.MediumTest;
import com.google.android.apps.common.testing.ui.espresso.Espresso;
import com.google.android.apps.common.testing.ui.espresso.action.ViewActions;
import com.google.android.apps.common.testing.ui.espresso.assertion.ViewAssertions;
import com.google.android.apps.common.testing.ui.espresso.contrib.DrawerActions;
import com.google.android.apps.common.testing.ui.espresso.contrib.DrawerMatchers;
import com.google.android.apps.common.testing.ui.espresso.matcher.ViewMatchers;
import com.meg7.soas.R;
import com.meg7.soas.ui.PhotosListActivity;
public class PhotosListActivityEspressoTest extends ActivityInstrumentationTestCase2<PhotosListActivity> {
private Activity mActivity;
public PhotosListActivityEspressoTest() {
super(PhotosListActivity.class);
}
public void setUp() throws Exception {
super.setUp();
mActivity = getActivity();
}
@MediumTest
public void testLoadingPhotos() throws InterruptedException {
VolleyIdlingResource volleyResources;
try {
volleyResources = new VolleyIdlingResource(mActivity, "VolleyCalls");
Espresso.registerIdlingResources(volleyResources);
} catch (SecurityException | NoSuchFieldException e) {
fail(e.getMessage());
}
Espresso.onView(ViewMatchers.withId(android.R.id.list))
.check(ViewAssertions.matches(ViewMatchers.isDisplayed()));
}
@MediumTest
public void testOnPhotoItemClick() {
// NOTE :: Re-enable this test.
// Espresso.onData(LongListMatchers.withItemContent("item: 5"))
// .perform(ViewActions.click());
}
@MediumTest
public void testOpenAndCloseDrawer() {
// Drawer should not be open to start.
Espresso.onView(ViewMatchers.withId(R.id.drawer)).check(ViewAssertions.matches(DrawerMatchers.isClosed()));
DrawerActions.openDrawer(R.id.drawer);
// The drawer should now be open.
Espresso.onView(ViewMatchers.withId(R.id.drawer)).check(ViewAssertions.matches(DrawerMatchers.isOpen()));
DrawerActions.closeDrawer(R.id.drawer);
// Drawer should be closed again.
Espresso.onView(ViewMatchers.withId(R.id.drawer)).check(ViewAssertions.matches(DrawerMatchers.isClosed()));
}
}